﻿using System;
using System.Xml;
using Core.Library;
using DataObject;
using DataObject.Customer;
using Library.Components;

namespace KMT.Pages.Customer
{
    public partial class ForgotPassword : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Page.Title = string.Format(".: Quên mật khẩu? {0} :.", Constants.SITE_TITLE);    
        }

        protected void BtnSend(object sender, EventArgs e)
        {
            var email = txtEmail.Text.Trim();
            if (!string.IsNullOrEmpty(email))
            {
                var isHasEmail = CustomerController.Customer_CheckEmailExist(email);
                if (isHasEmail > 0)
                {
                    var o = CustomerController.Customer_GetByEmail(email);
                    if (o != null)
                    {
                        var objStr = new CString();
                        var sRandom = objStr.RandomString(5, false, false);

                        CustomerController.Customer_ChangePassword(o.CustomerId, SecurityUtility.MD5Encrypt(sRandom));

                        var doc = new XmlDocument();
                        doc.Load(Server.MapPath("App_Data/ForgotPassword.xml"));
                        var node = doc.SelectSingleNode("emails/email[@id='ForgotPassword']");
                        // Set info from xml file in to email   
                        var childNode = node.SelectSingleNode("subject");

                        // Subject: ...
                        var subject = string.Format("Quên mật khẩu? - www.kmt.vn");
                        // Body: ...
                        childNode = node.SelectSingleNode("body");
                        var Body = childNode.InnerText;

                        Body = Body.Replace("[Subject]", subject);
                        Body = Body.Replace("[ContactName]", o.ContactName);
                        Body = Body.Replace("[Mobile]", o.Mobile);
                        Body = Body.Replace("[Password]", sRandom);

                        var checkMail = MailUtility.Send(email, subject, Body);
                        if (checkMail)
                            ltMessage.Text = MessageUtility.ShowMessage(string.Empty,
                                                string.Format("Thông tin tài khoản của bạn đã được gửi vào hòm thư {0}", email), MessageType.Success);
                    }
                }
                else
                    ltMessage.Text = MessageUtility.ShowMessage(string.Empty, "Không có hòm thư này trong hệ thống.", MessageType.Warning);                    
            }
            else
            {
                ltMessage.Text = MessageUtility.ShowMessage(string.Empty, "Địa chỉ hòm thư không được trống.", MessageType.Warning);
                return;
            }
        }   
    }
}